package com.itheima.stock.controller;

import com.itheima.stock.common.domain.OwnRoleAndAllRoleIdsDomain;
import com.itheima.stock.pojo.SysUser;
import com.itheima.stock.vo.req.ConditionQueryUserReq;
import com.itheima.stock.vo.resp.ConditionQueryUserResp;
import com.itheima.stock.service.UserService;
import com.itheima.stock.vo.req.LoginReqVo;
import com.itheima.stock.vo.resp.R;
import com.itheima.stock.vo.resp.newLoginRespVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @author by itheima
 * @Date 2021/12/29
 * @Description 定义用户访问层
 */
@RestController
@RequestMapping("/api")
public class UserController {
    @Autowired
    private UserService userService;

    /*
        用户登录功能实现
        功能描述：当前用户登录后，仅仅加载了用户表相关信息，接下来完成的功能是完善用户权限相关的信息；
        服务路径：/api/login
        请求方式：POST
     */
    @PostMapping("/login")
    public R<newLoginRespVo> login(@RequestBody LoginReqVo vo){
        R<newLoginRespVo> r= userService.login(vo);
        return r;
    }
    /**
     * 生成验证码
     *  map结构：
     *      code： xxx,
     *      rkey: xxx
     * @return
     */
    @GetMapping("/captcha")
    public R<Map> generateCaptcha(){
        return userService.generateCaptcha();
    }
    /*
        功能描述：多条件综合查询用户分页信息，条件包含：分页信息 用户创建日期范围
        服务路径：/api/users
        服务方法：Post
     */
    @PostMapping("/users")
    public R<ConditionQueryUserResp> conditionsQueryUser(@RequestBody ConditionQueryUserReq req){
        return userService.conditionsQueryUser(req);
    }
    /*
        功能描述：添加用户信息
        服务路径：/api/users
        测试路径: /api/addUsers
        服务方法：Post
     */
    @PostMapping("/addUsers")
    public R addUsers(@RequestBody SysUser adduser){
        return userService.addUsers(adduser);
    }
}